Traditionally, a communication system may use data retransmission schemes for data transmission. FIG. 1 illustrates a block diagram of a conventional communication system 100 using a hybrid automatic repeat request (HARQ) scheme for data retransmission. The communication system 100 includes a transmitter 102 and a receiver 104. The transmitter 102 may transmit data to the receiver 104 on a plurality of HARQ channels, e.g., N HARQ channels. The receiver 104 includes a memory device 106, which further includes a plurality of buffers, e.g., N buffers 106-1, . . . , 106-N, to support data transmission on the N HARQ channels, respectively.
For example, based on the HARQ scheme, the transmitter 102 transmits a first data packet in a HARQ process to the receiver 104 on the first HARQ channel. The receiver 104 receives the first data packet and decodes the first data packet to obtain decoded data. The receiver 104 further verifies the decoded data by an error detection check, e.g., cyclic redundancy check (CRC). If the receiver 104 determines that the decoded data passes the verification, the decoded data is outputted. The receiver 104 further sends an acknowledgment signal ACK to the transmitter 102, to notify the transmitter 102 that the decoded data passes the verification. Accordingly, the HARQ process is finished.
If the receiver 104 determines that the decoded data fails the verification, the receiver 104 stores the first data packet in a buffer, e.g., the buffer 106-1, and sends a non-acknowledgment signal NACK to the transmitter 102, to notify the transmitter 102 that the decoded data fails the verification. In response, the transmitter 102 transmits a retransmission data packet to the receiver 104. The retransmission data packet may be the same as the first data packet or contain error correction information for the first data packet.
After receiving the retransmission data packet, the receiver 104 combines the retransmission data packet and the first data packet stored in the buffer 106-1 to obtain decoded data. The receiver 104 further verifies the decoded data by CRC. If the receiver 104 determines that the decoded data fails the verification, the receiver 104 stores the retransmission data packet in the buffer 106-1, together with the first data packet, and sends the non-acknowledgment signal NACK to the transmitter 102, to notify the transmitter 102 that the decoded data fails the verification. Accordingly, the transmitter 102 transmits a next retransmission data packet to the receiver 104. The above steps may then be repeated, until the decoded data passes the verification, and the HARQ process is finished.
Typically, a plurality of HARQ processes, e.g., N HARQ processes, are performed between the transmitter 102 and the receiver 104 in each schedule interval, and each of the N HARQ processes is performed on one of the N HARQ channels. Conventionally, for each of the N HARQ channels, the receiver 104 needs a buffer to store data packets when the decoded data fails the verification. Accordingly, the receiver 104 needs N buffers, i.e., the buffers 106-1, . . . , 106-N, for the N HARQ channels, respectively. If the number of HARQ channels is relatively large, a size of each buffer will be relatively small, since the memory device 106 usually has a fixed size. As a result, there may be a buffer constraint on data transmission and throughput of the communication system 100 may decrease.
However, in reality, the chance is relatively small that decoded data on all the N HARQ channels fails the verification. In other words, the chance is relatively small that all the N buffers are in use simultaneously. For example, FIG. 2 is a table 200 showing probabilities of a number of buffers in use, when the communication system 100 (FIG. 1) includes six HARQ channels and, accordingly, the receiver 104 (FIG. 1) includes six buffers. It is assumed that an error rate for each data packet is 0.1. As suggested by the table 200, the probability that two or less of the six buffers are in use is more than 97%. This means that, at most, two of the six buffers are in use most of the time during data transmission.
FIG. 3 illustrates conventional data transmission processes 300 performed by the communication system 100 (FIG. 1) based on the HARQ scheme. It is assumed that the communication system 100 (FIG. 1) includes four HARQ channels and the receiver 104 (FIG. 1) includes four buffers respectively for the four HARQ channels.
Referring to FIGS. 1 and 3, each signal received by the transmitter 102 from the receiver 104 is represented by a small block with letter “A,” or “N,” which correspond to the signal ACK or NACK, respectively. Each data packet is represented by a rectangular block with a first part labeled with “Old Payload” or “New Payload,” and a second part labeled with “CRC.” The first part of the rectangular block indicates whether a data packet is a first data packet in a HARQ process and, hence, including a new payload, or a retransmission data packet in a HARQ process and, hence, including an old payload. The second part of the rectangular block indicates that a data packet includes a CRC code for performing verification at the receiver 104. Although the data packets in each schedule interval T1, T2, or T3 are shown to be aligned according to time in FIG. 3, it is to be understood that the data packets in each schedule interval are sequentially transmitted from the transmitter 102 to the receiver 104.
As shown in FIG. 3, on each HARQ channel, if the transmitter 102 receives the acknowledgment signal ACK from the receiver 104 in a current schedule interval, the transmitter 102 transmits a new payload to the receiver 104 in a next schedule interval. If the transmitter 102 receives the non-acknowledgment signal NACK from the receiver 104 in a current schedule interval, the transmitter 102 transmits an old payload to the receiver 104 in a next schedule interval.